*** empty log message ***
authorJacob Berkman <jberkman@src.gnome.org>
Tue, 11 Dec 2001 01:08:33 +0000 (01:08 +0000)
committerJacob Berkman <jberkman@src.gnome.org>
Tue, 11 Dec 2001 01:08:33 +0000 (01:08 +0000)
gdk/gdk.c
gdk/gdkinternals.h
gdk/x11/gdkinput-xfree.c
gdk/x11/gdkmain-x11.c

index 319c619cd1bdc6d9524abdda46bd481a91bc6ba2..5700bc90ef46a8455fc599c7a0bf5d151428087a 100644 (file)
--- a/gdk/gdk.c
+++ b/gdk/gdk.c
@@ -67,7 +67,8 @@ static const GDebugKey gdk_debug_keys[] = {
   {"events",       GDK_DEBUG_EVENTS},
   {"misc",         GDK_DEBUG_MISC},
   {"dnd",          GDK_DEBUG_DND},
-  {"xim",          GDK_DEBUG_XIM}
+  {"xim",          GDK_DEBUG_XIM},
+  {"nograbs",       GDK_DEBUG_NOGRABS},
 };
 
 static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey);
index 8a70873f186c534cbbaa185909737645aee2b3e4..aa557abd56aac34223810fd679572daa0f66fa56 100644 (file)
@@ -67,7 +67,8 @@ typedef enum {
   GDK_DEBUG_MISC          = 1 << 0,
   GDK_DEBUG_EVENTS        = 1 << 1,
   GDK_DEBUG_DND           = 1 << 2,
-  GDK_DEBUG_XIM           = 1 << 3
+  GDK_DEBUG_XIM           = 1 << 3,
+  GDK_DEBUG_NOGRABS       = 1 << 4,
 } GdkDebugFlag;
 
 #ifndef GDK_DISABLE_DEPRECATED
index fe7cafdebc26c62062541e30451f7d0283c0b716..48b0784c6331bced419efc233095b206088e0020 100644 (file)
@@ -277,11 +277,15 @@ _gdk_input_grab_pointer (GdkWindow *     window,
              gdk_input_common_find_events (window, gdkdev,
                                            event_mask,
                                            event_classes, &num_classes);
-             
-             result = XGrabDevice( GDK_DISPLAY(), gdkdev->xdevice,
-                                   GDK_WINDOW_XWINDOW (window),
-                                   owner_events, num_classes, event_classes,
-                                   GrabModeAsync, GrabModeAsync, time);
+#ifdef G_ENABLE_DEBUG
+             if (_gdk_debug_flags & GDK_DEBUG_NOGRABS)
+               result = GrabSuccess;
+             else
+#endif
+               result = XGrabDevice( GDK_DISPLAY(), gdkdev->xdevice,
+                                     GDK_WINDOW_XWINDOW (window),
+                                     owner_events, num_classes, event_classes,
+                                     GrabModeAsync, GrabModeAsync, time);
              
              /* FIXME: if failure occurs on something other than the first
                 device, things will be badly inconsistent */
index 4dce680fa11bec8c7e9439dd42dee095b426f0de..fe7663f844f85f07282bd8dc6042aa095794be36 100644 (file)
@@ -90,18 +90,6 @@ static int gdk_initialized = 0;                          /* 1 if the library is initialized,
 static gint autorepeat;
 static gboolean gdk_synchronize = FALSE;
 
-#ifdef G_ENABLE_DEBUG
-static const GDebugKey gdk_debug_keys[] = {
-  {"events",       GDK_DEBUG_EVENTS},
-  {"misc",         GDK_DEBUG_MISC},
-  {"dnd",          GDK_DEBUG_DND},
-  {"xim",          GDK_DEBUG_XIM}
-};
-
-static const int gdk_ndebug_keys = sizeof(gdk_debug_keys)/sizeof(GDebugKey);
-
-#endif /* G_ENABLE_DEBUG */
-
 GdkArgDesc _gdk_windowing_args[] = {
   { "display",     GDK_ARG_STRING,   &_gdk_display_name,    (GdkArgFunc)NULL   },
   { "sync",        GDK_ARG_BOOL,     &gdk_synchronize,     (GdkArgFunc)NULL   },
@@ -298,14 +286,21 @@ gdk_pointer_grab (GdkWindow *       window,
   if (return_val == GrabSuccess)
     {
       if (!GDK_WINDOW_DESTROYED (window))
-       return_val = XGrabPointer (GDK_WINDOW_XDISPLAY (window),
-                                  xwindow,
-                                  owner_events,
-                                  xevent_mask,
-                                  GrabModeAsync, GrabModeAsync,
-                                  xconfine_to,
-                                  xcursor,
-                                  time);
+       {
+#ifdef G_ENABLE_DEBUG
+         if (_gdk_debug_flags & GDK_DEBUG_NOGRABS)
+           return_val = GrabSuccess;
+         else
+#endif
+           return_val = XGrabPointer (GDK_WINDOW_XDISPLAY (window),
+                                      xwindow,
+                                      owner_events,
+                                      xevent_mask,
+                                      GrabModeAsync, GrabModeAsync,
+                                      xconfine_to,
+                                      xcursor,
+                                      time);
+       }
       else
        return_val = AlreadyGrabbed;
     }
@@ -392,11 +387,18 @@ gdk_keyboard_grab (GdkWindow *       window,
   g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
   
   if (!GDK_WINDOW_DESTROYED (window))
-    return_val = XGrabKeyboard (GDK_WINDOW_XDISPLAY (window),
-                               GDK_WINDOW_XID (window),
-                               owner_events,
-                               GrabModeAsync, GrabModeAsync,
-                               time);
+    {
+#ifdef G_ENABLE_DEBUG
+      if (_gdk_debug_flags & GDK_DEBUG_NOGRABS)
+       return_val = GrabSuccess;
+      else
+#endif
+       return_val = XGrabKeyboard (GDK_WINDOW_XDISPLAY (window),
+                                   GDK_WINDOW_XID (window),
+                                   owner_events,
+                                   GrabModeAsync, GrabModeAsync,
+                                   time);
+    }
   else
     return_val = AlreadyGrabbed;